Users of computer systems and computer applications routinely make use of hierarchical storage schemes such as nested “folders” to manage electronic “documents.” A document can refer to entities such as the output of word processing, spreadsheet, and drawing programs, notes sent or received in electronic mail, instant message conversations, and others. The use of “tags” has also become common as a means for more flexibly denoting relationships between a document and a generally non-hierarchical set of categories. Beyond direct containment specification, the current state of the art also allows for the subsequent finding of documents by searching for tags, free text strings, or other attributes such as predominant color or orientation of a major axis in an image retrieval system.
While useful, all such schemes constrain how a user can create containers and how they may appear. For example, file folders can be created on an electronic “desktop” or within another folder by means of a menu selection or keyboard shortcut. Files and folders can be dragged and dropped into existing folders to denote containment. Documents may be embedded in other documents via active document technology (see e.g., http://msdn dot Microsoft dot com/en-us/library/6bzz39ft%28v=vs.71%29.aspx). The containment of interface widgets within a user interface sketch can be automatically determined and translated into a containment tree for purposes of user interface (UI) generation (see http://www dot wipo dot int/pctdb/en/wo.jsp?IA=IB2004052069&DISPLAY=DESC). While the existing visualization of containment may provide various two dimensional and three dimensional tree views, the creation of containers is fixed in those systems. Although a few folder styles may be made available, e.g., picking a folder color to indicate degree of importance, the current systems do not provide a way to have a completely different visual representation for the folder/container itself. For instance, no current system allows the user to flexibly create containers by merely sketching one or more arbitrary marks on an interactive surface.